Numerous types of encoding algorithms are nowadays used to encode multimedia files. Well known compression formats are “zip” (for data), “mp3”, “wma” (for audio), “avi” and “divx” (for movies). The respective encoder removes almost all redundancy, and in case of lossy encoding also the irrelevancy, from the original signal so as to obtain an encoded signal that can more efficiently be stored and/or distributed.
Sometimes it is desired to determine by which type of encoder an encoded signal has been produced, or at least ascertain whether an encoded signal has been produced by a particular type of encoder. Computer file names have an extension (such as zip, .mp3, .avi) for that purpose. Some encoders also render identification possible by adding a header that reveals the necessary information to the contents. However, file name extensions and headers are sometimes missing or cannot be trusted.
Generally, the type of encoding cannot be identified by mere inspection of the encoded signal, because the encoded and compressed contents contain little or no structure. A trivial solution would be to try all possible decoders and interpret their outputs. For audio signals, a human being would have to listen whether the decoder output is music or not. This may be a hard decision for some types of music. Moreover, such a solution requires human interaction and cannot be automated.